package com.xique.park.service.command.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.domain.ParkChargeCarTemp;
import com.xique.park.bean.domain.ParkChargeRuleComm;

import java.util.List;

/**
 * 计费规则命令
 *
 * @author: xique
 */
public interface IParkChargeRuleCommandService {

    /**
     * 单个设备下发管理类型车库和收费规则对应关系列表
     *
     * @param parkId 车场ID
     * @param sn     设备序列号
     * @param list   计费规则列表
     * @return 下发结果
     */
    AjaxResult downChargeTempList(Long parkId, String sn, List<ParkChargeCarTemp> list);

    /**
     * 车场所有设备下发下发管理类型车库和收费规则对应关系列表
     *
     * @param parkId 车场ID
     * @param list   计费规则列表
     * @return 下发结果
     */
    AjaxResult downChargeTempList(Long parkId, List<ParkChargeCarTemp> list);

    /**
     * 单个设备删除下发管理类型车库和收费规则对应关系列表
     *
     * @param sn   设备序列号
     * @param list 计费规则列表
     * @return 下发结果
     */
    AjaxResult delChargeTempList(String sn, List<ParkChargeCarTemp> list);

    /**
     * 单个设备删除下发管理类型车库和收费规则对应关系列表
     *
     * @param parkId 车场ID
     * @param list   计费规则列表
     * @return 下发结果
     */
    AjaxResult delChargeTempList(Long parkId, List<ParkChargeCarTemp> list);

    /**
     * 单个设备下发收费规则列表
     *
     * @param parkId 车场ID
     * @param sn     设备序列号
     * @param list   计费规则列表
     * @return 下发结果
     */
    AjaxResult downChargeRuleCommList(Long parkId, String sn, List<ParkChargeRuleComm> list);

    /**
     * 车场所有设备下发收费规则列表
     *
     * @param parkId      车场ID
     * @param list        计费规则列表
     * @param reminderMsg 提示消息
     * @return 下发结果
     */
    AjaxResult downChargeRuleCommList(Long parkId, List<ParkChargeRuleComm> list, String reminderMsg);

    /**
     * 单个设备删除收费规则列表
     *
     * @param sn   设备序列号
     * @param list 计费规则列表
     * @return 下发结果
     */
    AjaxResult delChargeRuleCommList(String sn, List<ParkChargeRuleComm> list);

    /**
     * 单个设备删除收费规则列表
     *
     * @param parkId 车场ID
     * @param list   计费规则列表
     * @return 下发结果
     */
    AjaxResult delChargeRuleCommList(Long parkId, List<ParkChargeRuleComm> list);

}
